package com.pd.backend.controller;

import com.pd.backend.dtos.PdGoodsTypeDto;
import com.pd.backend.dtos.PdGoodsTypePageDto;
import com.pd.backend.vo.GoodsTypeAndTruckTypeVo;
import com.pd.backend.dtos.PageResponseResult;
import com.pd.backend.dtos.ResponseResult;
import com.pd.backend.service.PdGoodsTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 货物类型控制层
 */
@RestController
@RequestMapping("/goodstype")
@Slf4j
@Api(tags = "货物类型")
public class PdGoodsTypeController {
    @Autowired
    private PdGoodsTypeService pdGoodsTypeService;
    /**
     * 新增货物类型
     * @return
     */
    @ApiOperation(value = "新增货物类型")
    @PostMapping("/addGoodType")
    public ResponseResult addGoodType(@RequestBody PdGoodsTypeDto pdGoodsTypeDto){
        return pdGoodsTypeService.addGoodType(pdGoodsTypeDto);
    }

    /**
     * 分页查询货物类型
     * @param pdGoodsTypePageDto
     *
     * @return
     */
    @ApiOperation(value = "分页查询货物类型")
    @PostMapping("/page")
    public PageResponseResult page(@RequestBody PdGoodsTypePageDto pdGoodsTypePageDto){
        return pdGoodsTypeService.page(pdGoodsTypePageDto);
    }

    /**
     * 根据id删除货物类型
     * @return
     */
    @ApiOperation(value = "根据id删除货物类型")
    @DeleteMapping
    public ResponseResult deleteById(String id){
        return pdGoodsTypeService.deleteById(id);
    }

    /**
     * 根据id查询货物类型和车型
     * @return
     */
    @ApiOperation(value = "根据id查询货物类型和车型")
    @GetMapping("/selectGoodsTypeAndTruckType")
    public ResponseResult<GoodsTypeAndTruckTypeVo> selectGoodsTypeAndTruckTypeByGoodsTypeId(String id){
        return pdGoodsTypeService.selectGoodsTypeAndTruckTypeByGoodsTypeId(id);
    }

    /**
     * 修改货物类型
     * @param pdGoodsTypeDto
     * @return
     */
    @ApiOperation(value = "根据id修改货物类型")
    @PutMapping
    public ResponseResult updateGoodsType(@RequestBody PdGoodsTypeDto pdGoodsTypeDto){
        return pdGoodsTypeService.updateGoodsType(pdGoodsTypeDto);
    }


}